﻿using LightCAD.Core;
using LightCAD.Three;
using SkiaSharp;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace LightCAD.Runtime
{
    public interface IModel3DEditControl:IDocumentEidtorControl
    {
        //bool HoverEnabled { get; set; }
        Bounds Bounds { get; }
        void RefreshControl();

        //void ShowHoverTip(object content);
        void AttachEvents(Action onInit, Action onDestory, Action<string, MouseEventRuntime> mouseEvent,
            Action<KeyEventRuntime> keyDown,
             Action<KeyEventRuntime> keyUp,
            Action<Bounds> sizeChanged,
            Action onRender);
        void DetachEvents(Action onInit, Action onDestory, Action<string, MouseEventRuntime> mouseEvent,
            Action<KeyEventRuntime> keyDown,
            Action<KeyEventRuntime> keyUp,
            Action<Bounds> sizeChanged,
            Action onRender);
        event Action<List<LcLevel>> OnLevelFilterChanged;
        void Load(LcDocument doc);
        //void PopupContextMenu(Action closedAction);
        //void ShowInfo(string type,object info);
        //IPopupObject GetPopupObject(string type);
        //SKPoint PointToScreen(SKPoint point);
    }
}
